STEP 7 Micro/WIN 中将双整数(DOUBLE INTEGER) 转换 BCD (或者相反)

STEP 7 Micro/WIN 中,可以使用 I_BCD 和 BCD_I (见Instructions -> Convert) 指令将 16位整数 (INTEGER) 转换为 BCD 码或者相反 (BCD->INT)。使用下面提供的可下载的指令库,可以将32位整数 (DOUBLE INTEGER) 转换为BCD 码或者做相反转换 (BCD->DOUBLE INTEGER)。

注意此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

“BCD” 库的描述

“BCD.mwl” 库包含了功能 DI_BCD ( 双整数到 BCD 码的转换) BCD_DI ( BCD 码到双整数的转换)。

BCD.zip ( 2 KB )

点击上面的链接下载 BCD 指令库到本地计算机硬盘,建议保存 Micro/WIN 安装目录的 Lib 文件夹中。以下是一个完整路径的例子
C:\Program Files\Siemens\STEP 7-Micro/WIN V4.0\Lib

然后将指令库手动添加到 Micro/WIN 软件中。

参见添加指令库

成功添加指令库后,用户可以在STEP7 Micro/win的指令树中找到 “BCD(V1.0)”。


图1. I_BCD 和 BCD_I 指令

双整数转换为 BCD 码 (DI_BCD) :

DI_BCD 功能将 32 位正整数,0 到 9,999,999 之间的数转换为二进制编码的十进制数(BCD)。


图2. DI_BCD 编程

如果输入负数或大于 9,999,999 的数,ENO 使能输出位被复位并且转换结果无效。
参数 数据类型 操作?/b> 描述
EN [BOOL] E, A, M, L, V 输入使能
ENO [BOOL] E, A, M, L, V 输出使能
IN [DWORD] VD, ED, AD, MD, SD, SMD, LD, T, Z, AED, AC, HC, Constant, *VD, *AC, *LD 要转为 BCD 码的32 位整数
OUT [DWORD] VD, ED, AD, MD, SD, SMD, LD, T, Z, AC, *VD, *LD, *AC BCD 码
表 1. DI_BCD 参数

BCD 码转换为双整数 (BCD_DI)

BCD_DI 功能将正的 32 位 BCD 码,从 0 到16#99999999 之间的数转换为 32 位双整数。


图 3. BCD_DI 编程

16进制字母 (A-F) 不会被转换。这时 ENO 使能输出位被复位并且转换结果无效。
Parameter Data type Operands Description
EN [BOOL] E, A, M, L, V Enable input
ENO [BOOL] E, A, M, L, V Enable output
IN [DWORD] VD, ED, AD, MD, SD, SMD, LD, T, Z, AED, AC, HC, Constant, *VD, *AC, *LD BCD number
OUT [DWORD] VD, ED, AD, MD, SD, SMD, LD, T, Z, AC, *VD, *LD, *AC Integer value (32-bit) of the BCD number

表 2. BCD_DI 参数